package com.lh.tams.dao;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.lh.tams.controller.qo.CaseQo;
import com.lh.tams.dao.base.HibernateBaseDao;
import com.lh.tams.domain.TamsIdentify;
import com.lh.tams.util.DataGridModel;
import com.lh.tams.util.DateUtil;
import com.lh.tams.util.Page;
import com.lh.tams.util.Status;

@Repository
public class IdentifyDao extends HibernateBaseDao{
	
	@SuppressWarnings("unchecked")
	public TamsIdentify getCaseIdentifByNo(String caseNo){
		List<Object> args=new ArrayList<Object>();
		StringBuilder hql=new StringBuilder();
		hql.append("from TamsIdentify t  where t.caseNo=?");
		args.add(caseNo);
		Page page = super.queryForList(hql.toString(), args.toArray(), 1, 100);
		List<TamsIdentify> lists = (List<TamsIdentify>)page.getRows();
		if(lists.size()>0){
			return lists.get(0);
		}else{
			return null;
		}
	}
	
	public Page query(DataGridModel dgm,CaseQo caseQo,long personId){
		List<Object> args=new ArrayList<Object>();
		StringBuilder hql=new StringBuilder();
		hql.append("select t from TamsIdentify t left join t.tamsCase tc where 1=1");
		if(personId>0){
			hql.append(" and t.tamsPerson.idBgt=?");
			args.add(personId);
		}
		if(caseQo.getCaseNo()!=null&&!"".equals(caseQo.getCaseNo())){
			hql.append(" and t.caseNo like ?");
			args.add("%"+caseQo.getCaseNo()+"%");
		}
		if(caseQo.getOutDept()>0){
			hql.append(" and tc.tamsDeptByOutDept.idBgt=?");
			args.add(caseQo.getOutDept());
		}
		if(caseQo.getOutPerson()>0){
			hql.append(" and tc.tamsPersonByOutPerson.idBgt=?");
			args.add(caseQo.getOutPerson());
		}
		if(caseQo.getAlarmName()!=null&&!"".equals(caseQo.getAlarmName())){
			hql.append(" and tc.alarmName like ?");
			args.add("%"+caseQo.getAlarmName()+"%");
		}
		hql.append(" and t.isFinish=?");
		if(caseQo.getIsFinish()!=Status.IS_FINISH_YES){
			args.add(Status.IS_FINISH_NO);
		}else{
			args.add(Status.IS_FINISH_YES);
		}
		hql.append("  order by t.caseNo desc");
		return super.queryForList(hql.toString(), args.toArray(), dgm.getPage(), dgm.getRows());
	}

	/**
	 * 获取该案件的鉴定人 鉴定时间  鉴定内容 
	 * @param caseNo
	 * @return
	 */
	public String queryIdentifyContent(String caseNo){
		String hql="from TamsIdentify ti where ti.caseNo=?";
		List<TamsIdentify> list= getHibernateTemplate().find(hql, new Object[]{caseNo});
		StringBuilder sb = new StringBuilder();
		if(list.size()>0){
			for(TamsIdentify ti:list){
				sb.append("鉴定部门:"+ti.getTamsPerson().getTamsDept().getDeptName()+",鉴定部门电话:"+ti.getTamsPerson().getTamsDept().getPhone()+"\r");
				sb.append("鉴定人:"+ti.getTamsPerson().getPersonName()+",鉴定人电话:"+ti.getTamsPerson().getPhone()+"\r");
				sb.append("鉴定开始日期:"+DateUtil.ymd(ti.getStartDate()));
				if(ti.getEndDate()!=null){
					sb.append(",鉴定完成日期:"+DateUtil.ymd(ti.getEndDate()));
				}
				sb.append("\r");
				//sb.append("鉴定类型:"+ti.getIdentifyType()+"\r");
				sb.append(ti.getIdentifyContent()==null?"":ti.getIdentifyContent());
			}
			return sb.toString();
		}else{
			return "";
		}
	}
}
